 import {getCurrentUserState, setCurrentUserState} from "../states/user.ts";
import myAxios from "../plugins/myAxios.ts";


/**
 * 获取当前用户信息
 * @returns Promise<User | null> 当前用户信息，如果获取失败则返回null
 */
export const getCurrentUser = async () => {
    // 先从本地状态获取用户信息
    // 这里是从缓存里面获取用户信息，但是会存在一个问题，就是如果用户信息被修改了，那么本地状态就会和远程状态不一致，也就是当个人用户信息修改之后，返回页面的个人信息还是旧的
    // 所以这里注释掉，每次都从后端获取新的用户信息
    // const currentUser = getCurrentUserState();
    // if (currentUser) {
    //     return currentUser;
    // }
    // 本地状态不存在则从远程获取
    const res = await myAxios.get('/user/current');
    if (res.code === 0) {
        // 获取成功后更新本地状态
        setCurrentUserState(res.data);
        return res.data;
    }
    // 获取失败返回null
    return null;
}